6e49ae971b49993d387af57645c068e5f677e946,sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginJarsInstaller.java,ServerPluginJarsInstaller,registerPlugin,#File#boolean#boolean#,92

Before Change


    }

    if (existing != null) {
      FileUtils.deleteQuietly(existing.getFile());
      LOG.info("Plugin " + metadata.getKey() + " replaced by new version");
    }
  }

After Change



  private void overridePlugin(File sourceFile, boolean deleteSource) {
    File destDir = fs.getUserPluginsDir();
    File destFile = new File(destDir, sourceFile.getName());
    if (destFile.exists()) {
      // plugin with same filename already installed
      FileUtils.deleteQuietly(destFile);
    }

    try {
      if (deleteSource) {
        FileUtils.moveFile(sourceFile, destFile);
      } else {
        FileUtils.copyFile(sourceFile, destFile);
      }
    } catch (IOException e) {
      LOG.error(String.format("Fail to move or copy plugin: %s to %s",
        sourceFile.getAbsolutePath(), destFile.getAbsolutePath()), e);
    }

    DefaultPluginMetadata metadata = installer.extractMetadata(destFile, false);
    if (StringUtils.isNotBlank(metadata.getKey())) {
      PluginMetadata existing = pluginByKeys.put(metadata.getKey(), metadata);
      if (existing != null) {
        if (!existing.getFile().getName().equals(destFile.getName())) {
          FileUtils.deleteQuietly(existing.getFile());
        }
        LOG.info("Plugin " + metadata.getKey() + " replaced by new version");
      }